package com.gqj.meter.domain;

import com.gqj.common.annotation.Excel;
import com.gqj.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.apache.poi.ss.usermodel.IndexedColors;

import javax.validation.constraints.NotBlank;

/**
 * 其他物资对象 md_other_material
 *
 * @author lxq
 * @date lxq-02-10
 */
public class MdOtherMaterial extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 其他物资id
     */
    @ApiModelProperty("其他物资id")
    private Long otherMaterialId;

    /**
     * 设备条形码
     */
    @ApiModelProperty("设备条形码")
    @Excel(name = "设备条形码", headerBackgroundColor = IndexedColors.RED1, width = 25)
    private String barCode;

    /**
     * 设备类别,参见营销标准代码：设备类别
     */
    @ApiModelProperty("设备类别")
    @Excel(name = "设备类别")
    private String equipCateg;

    /**
     * 设备标识
     */
    @ApiModelProperty("设备标识")
    private Long equipId;


    /**
     * 库房标识
     */
    @ApiModelProperty("库房标识")
    private Long whId;

    /**
     * 库区标识
     */
    @ApiModelProperty("库区标识")
    private Long whAreaId;

    /**
     * 存放区标识
     */
    @ApiModelProperty("存放区标识")
    private Long storeAreaId;

    /**
     * 储位标识
     */
    @ApiModelProperty("储位标识")
    private Long storeLocId;

    /**
     * 当前状态
     */
    @ApiModelProperty("当前状态")
    @Excel(name = "当前状态", type = Excel.Type.EXPORT)
    private String curStatusCode;

    /**
     * 删除标识0-正常，1删除
     */
    @ApiModelProperty("删除标识")
    private Integer delflag;

    /**
     * 库房编号
     */
    @ApiModelProperty("库房编号")
    private String whNo;

    /**
     * 库房名称
     */
    @ApiModelProperty("库房名称")
    private String whName;

    /**
     * 库区名称
     */
    @ApiModelProperty("库区编号")
    private String whAreaNo;

    /**
     * 库区名称
     */
    @ApiModelProperty("库区名称")
    private String whAreaname;
    /**
     * 存放区编号
     */
    @ApiModelProperty("存放区编号")
    private String storeAreaNo;

    /**
     * 存放区名称
     */
    @ApiModelProperty("存放区名称")
    private String storeAreaName;

    /**
     * 储位编号
     */
    @ApiModelProperty("储位编号")
    private String storeLocNo;

    /**
     * 储位名称
     */
    @ApiModelProperty("储位名称")
    private String storeLocName;
    /**
     * 其他物质主键集合
     */
    @ApiModelProperty("其他物质主键集合")
    private Long[] otherMaterialIds;

    @ApiModelProperty("业务状态")
    @Excel(name = "业务状态", dictType = "service_status", type = Excel.Type.IMPORT)
    private String serviceStatus;

    /**
     * 电能表主键集合
     */
    @ApiModelProperty("业务状态集合")
    private String[] serviceStatuss;

    public String[] getServiceStatuss() {
        return serviceStatuss;
    }

    public void setServiceStatuss(String[] serviceStatuss) {
        this.serviceStatuss = serviceStatuss;
    }

    public String getServiceStatus() {
        return serviceStatus;
    }

    public void setServiceStatus(String serviceStatus) {
        this.serviceStatus = serviceStatus;
    }

    public Long[] getOtherMaterialIds() {
        return otherMaterialIds;
    }

    public void setOtherMaterialIds(Long[] otherMaterialIds) {
        this.otherMaterialIds = otherMaterialIds;
    }

    public void setOtherMaterialId(Long otherMaterialId) {
        this.otherMaterialId = otherMaterialId;
    }

    public Long getOtherMaterialId() {
        return otherMaterialId;
    }

    public void setEquipCateg(String equipCateg) {
        this.equipCateg = equipCateg;
    }

    public String getEquipCateg() {
        return equipCateg;
    }

    public void setEquipId(Long equipId) {
        this.equipId = equipId;
    }

    public Long getEquipId() {
        return equipId;
    }

    public void setBarCode(String barCode) {
        this.barCode = barCode;
    }

    @NotBlank(message = "条形码不能为空")
    public String getBarCode() {
        return barCode;
    }

    public void setWhId(Long whId) {
        this.whId = whId;
    }

    public Long getWhId() {
        return whId;
    }

    public void setWhAreaId(Long whAreaId) {
        this.whAreaId = whAreaId;
    }

    public Long getWhAreaId() {
        return whAreaId;
    }

    public void setStoreAreaId(Long storeAreaId) {
        this.storeAreaId = storeAreaId;
    }

    public Long getStoreAreaId() {
        return storeAreaId;
    }

    public void setStoreLocId(Long storeLocId) {
        this.storeLocId = storeLocId;
    }

    public Long getStoreLocId() {
        return storeLocId;
    }

    public String getCurStatusCode() {
        return curStatusCode;
    }

    public void setCurStatusCode(String curStatusCode) {
        this.curStatusCode = curStatusCode;
    }

    public void setDelflag(Integer delflag) {
        this.delflag = delflag;
    }

    public Integer getDelflag() {
        return delflag;
    }

    public String getWhNo() {
        return whNo;
    }

    public void setWhNo(String whNo) {
        this.whNo = whNo;
    }

    public String getWhName() {
        return whName;
    }

    public void setWhName(String whName) {
        this.whName = whName;
    }

    public String getWhAreaNo() {
        return whAreaNo;
    }

    public void setWhAreaNo(String whAreaNo) {
        this.whAreaNo = whAreaNo;
    }

    public String getWhAreaname() {
        return whAreaname;
    }

    public void setWhAreaname(String whAreaname) {
        this.whAreaname = whAreaname;
    }

    public String getStoreAreaNo() {
        return storeAreaNo;
    }

    public void setStoreAreaNo(String storeAreaNo) {
        this.storeAreaNo = storeAreaNo;
    }

    public String getStoreAreaName() {
        return storeAreaName;
    }

    public void setStoreAreaName(String storeAreaName) {
        this.storeAreaName = storeAreaName;
    }

    public String getStoreLocNo() {
        return storeLocNo;
    }

    public void setStoreLocNo(String storeLocNo) {
        this.storeLocNo = storeLocNo;
    }

    public String getStoreLocName() {
        return storeLocName;
    }

    public void setStoreLocName(String storeLocName) {
        this.storeLocName = storeLocName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("otherMaterialId", getOtherMaterialId())
                .append("equipCateg", getEquipCateg())
                .append("equipId", getEquipId())
                .append("barCode", getBarCode())
                .append("whId", getWhId())
                .append("whAreaId", getWhAreaId())
                .append("storeAreaId", getStoreAreaId())
                .append("storeLocId", getStoreLocId())
                .append("curStatusCode", getCurStatusCode())
                .append("delflag", getDelflag())
                .toString();
    }
}
